import 'package:flutter/material.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart';
import 'package:get/get.dart';

class LoadingUtil {
  // ========== 新增：追踪 loading 状态 ==========
  static bool _isLoadingShowing = false;
  // ==========================================
  
  static void show2() {
    // 显示loading，过了5秒没有关闭，就自动关闭
    if (_isLoadingShowing) {
      Get.log('⚠️ Loading 已经在显示中，跳过');
      return;
    }
    
    _isLoadingShowing = true;
    Get.log('🔄 显示 Loading');
    
    Get.dialog(
      // 点击背景不关闭
      barrierDismissible: false,
      Center(
        child: LoadingAnimationWidget.fourRotatingDots(
          color: Colors.white,
          size: 100,
        ),
      ),
    ).then((_) {
      // 对话框关闭时重置状态
      _isLoadingShowing = false;
      Get.log('✅ Loading 已关闭（通过其他方式）');
    });
  }

  static void hide2() {
    // ========== 修改：只关闭自己显示的 loading ==========
    if (_isLoadingShowing && (Get.isDialogOpen ?? false)) {
      Get.log('✅ 关闭 Loading');
      _isLoadingShowing = false;
      Get.back();
    } else if (_isLoadingShowing) {
      // loading 应该在显示但对话框已经关闭了
      Get.log('⚠️ Loading 状态不同步，重置状态');
      _isLoadingShowing = false;
    } else {
      Get.log('⏭️ Loading 未显示，跳过关闭');
    }
    // ================================================
  }


  static void show() {
    // 显示loading，过了5秒没有关闭，就自动关闭
    if (Get.isDialogOpen ?? false) return;
    Get.dialog(
      // 点击背景不关闭
      barrierDismissible: false,
      Center(
        child: LoadingAnimationWidget.fourRotatingDots(
          color: Colors.white,
          size: 100,
        ),
      ),
    );
  }

  static void hide() {
    if (Get.isDialogOpen ?? false) navigator!.pop();
  }
}
